package com.machine.filling.net.serialPort.send;

import com.machine.filling.util.CrcUtil;
import com.machine.filling.util.LogUtil;

/**
 * Created by Administrator on 2018/3/11 0011.
 */

public class CMD_Base {
    /**
     * 帧头
     */
    private String frameHead_2 = "7efe";
    /**
     * 版本号
     */
    protected String version_1;
    /**
     * 枪号
     */
    protected String gunNum_1;
    /**
     * 命令控制字
     */
    private String cmd_2;
    /**
     * 数据域长度
     */
    private String length_1;
    /**
     * 数据域
     */
    protected String datas;
    /**
     * 校验和
     */
    private String crc_2;
    /**
     * 帧尾
     */
    private String frameEnd_1 = "0d";
//----------set---------------

    public void setVersion_1(String version_1) {
        this.version_1 = version_1;
    }

    public void setGunNum_1(String gunNum_1) {
        this.gunNum_1 = gunNum_1;
    }

    public void setCmd_2(String cmd_2) {
        this.cmd_2 = cmd_2;
    }

    /**
     * 设置数据域
     */
    public void setDatas(String datas) {
        this.datas = datas;
        this.length_1 = String.format("%02x", datas.length() / 2);

        LogUtil.e("参与CRC验证数据: version_1-->" + version_1);
        LogUtil.e("参与CRC验证数据: gunNum_1-->" + gunNum_1);
        LogUtil.e("参与CRC验证数据: cmd_2-->" + cmd_2);
        LogUtil.e("参与CRC验证数据: getLength_1()-->" + getLength_1() + "  length_1-->" + length_1);
        LogUtil.e("参与CRC验证数据: datas-->" + datas);

        this.crc_2 = CrcUtil.crc16StringHex(version_1 + gunNum_1 + cmd_2 + getLength_1() + datas);
        LogUtil.e("设置数据域-->" + CrcUtil.crc16StringHex(version_1 + gunNum_1 + cmd_2 + getLength_1() + datas));
    }

    //--------------get------------
    public String getCMDFrame() {
        LogUtil.e("getCMDFrame进行验证前数据frameHead_2-->"+ frameHead_2);
        LogUtil.e("getCMDFrame进行验证前数据version_1-->"+ version_1);
        LogUtil.e("getCMDFrame进行验证前数据gunNum_1-->"+ gunNum_1);
        LogUtil.e("getCMDFrame进行验证前数据cmd_2-->"+ cmd_2);
        LogUtil.e("getCMDFrame进行验证前数据getLength_1()-->"+ getLength_1());
        LogUtil.e("getCMDFrame进行验证前数据datas-->"+ datas);
        LogUtil.e("getCMDFrame进行验证前数据getCrc_2()-->"+ getCrc_2());
        LogUtil.e("getCMDFrame进行验证前数据frameEnd_1-->"+ frameEnd_1);
        return frameHead_2 + version_1 + gunNum_1 + cmd_2 + getLength_1() + datas + getCrc_2() + frameEnd_1;
    }

    public String getFrameHead_2() {
        return frameHead_2;
    }

    public String getVersion_1() {
        return version_1;
    }

    public String getGunNum_1() {
        return gunNum_1;
    }

    public String getCmd_2() {
        return cmd_2;
    }

    public String getLength_1() {
        return length_1;
    }

    public String getDatas() {
        return datas;
    }

    public String getCrc_2() {
        return crc_2;
    }

    public String getFrameEnd_1() {
        return frameEnd_1;
    }

}
